package fons.navigator.views;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface ViewRequirement {
	String name();
	String humanName();
	String description() default "Keine Beschreibung";
	String comment() default NONE;
	
	String[] defaultCollection() default {};
	Type type() default Type.COLLECTION;
	Constraint constraint() default Constraint.NONE;
	boolean optional() default false;
	
	enum Type { COLLECTION, NESTED_COLLECTION };
	enum Constraint { ALL_HAVE_VALUES, SOME_HAVE_VALUES, CROSS_HAS_VALUES, NONE };  
	final String NONE = "";
}
